@file:Suppress("MagicNumber")

package com.tangem.common.ui.charts.preview

import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import java.math.BigDecimal

internal class MarketChartPreviewDataProvider : PreviewParameterProvider<Pair<List<BigDecimal>, List<BigDecimal>>> {
    override val values: Sequence<Pair<List<BigDecimal>, List<BigDecimal>>>
        get() {
            val bitcoinPrice = listOf(
                59270, 61748, 61941, 62889, 62740, 62989, 63858, 63608, 63951, 63917,
                63253, 63765, 63862, 64502, 63876, 64028, 63875, 64531, 64249, 63680,
                63228, 63159, 63249, 63664, 63469, 63711, 63003, 62333, 62882, 62183,
                62231, 62244, 62200, 61188, 61683, 61199, 61036, 62116, 62436, 63065,
                62908, 63067, 63294, 60904, 60677, 60790, 60705, 61041, 60667, 61158,
                61112, 60795, 60900, 60771, 61124, 61343, 61371, 61484, 61133, 62372,
                62704, 63007, 63092, 62905, 62470, 62019, 61756, 61776, 61557, 61540,
                61904, 62151, 62419, 64663, 65955, 66229, 65991, 66176, 66517, 65838,
                65210, 65216, 65611, 66467, 66209, 67247, 66913, 67059, 66978, 66845,
                67240, 66874, 66993, 66940, 67185, 67330, 67340, 66845, 66062, 66273,
                66645, 66865, 67005, 67382, 70049, 71464, 71293, 70875, 71137, 69720,
                69323, 70139, 69964, 69716, 69855, 70442, 69774, 69125, 69404, 69714,
                69967, 68042, 67077, 67938, 67833, 67182, 67306, 68327, 69093, 68517,
                68726, 68759, 69061, 68880, 69148, 69305, 69044, 69313, 69122, 68821,
                68854, 68506, 68823, 68613, 68420, 70356, 69241, 69401, 68004, 67630,
                68311, 68311, 68291, 68302, 68717, 67926, 67690, 67314, 67285, 67567,
                68026, 67552, 67740, 68519, 68611, 68363, 68503, 68171, 68326, 67121,
                67626, 67481, 67657, 67567, 67608, 67607, 67683, 67729, 67733, 67709,
            ).map { it.toBigDecimal() }
            val bitcoinTimestamps = listOf(
                1714752000000, 1714766400000, 1714780800000, 1714795200000, 1714809600000,
                1714824000000, 1714838400000, 1714852800000, 1714867200000, 1714881600000,
                1714896000000, 1714910400000, 1714924800000, 1714939200000, 1714953600000,
                1714968000000, 1714982400000, 1714996800000, 1715011200000, 1715025600000,
                1715040000000, 1715054400000, 1715068800000, 1715083200000, 1715097600000,
                1715112000000, 1715126400000, 1715140800000, 1715155200000, 1715169600000,
                1715184000000, 1715198400000, 1715212800000, 1715227200000, 1715241600000,
                1715256000000, 1715270400000, 1715284800000, 1715299200000, 1715313600000,
                1715328000000, 1715342400000, 1715356800000, 1715371200000, 1715385600000,
                1715400000000, 1715414400000, 1715428800000, 1715443200000, 1715457600000,
                1715472000000, 1715486400000, 1715500800000, 1715515200000, 1715529600000,
                1715544000000, 1715558400000, 1715572800000, 1715587200000, 1715601600000,
                1715616000000, 1715630400000, 1715644800000, 1715659200000, 1715673600000,
                1715688000000, 1715702400000, 1715716800000, 1715731200000, 1715745600000,
                1715760000000, 1715774400000, 1715788800000, 1715803200000, 1715817600000,
                1715832000000, 1715846400000, 1715860800000, 1715875200000, 1715889600000,
                1715904000000, 1715918400000, 1715932800000, 1715947200000, 1715961600000,
                1715976000000, 1715990400000, 1716004800000, 1716019200000, 1716033600000,
                1716048000000, 1716062400000, 1716076800000, 1716091200000, 1716105600000,
                1716120000000, 1716134400000, 1716148800000, 1716163200000, 1716177600000,
                1716192000000, 1716206400000, 1716220800000, 1716235200000, 1716249600000,
                1716264000000, 1716278400000, 1716292800000, 1716307200000, 1716321600000,
                1716336000000, 1716350400000, 1716364800000, 1716379200000, 1716393600000,
                1716408000000, 1716422400000, 1716436800000, 1716451200000, 1716465600000,
                1716480000000, 1716494400000, 1716508800000, 1716523200000, 1716537600000,
                1716552000000, 1716566400000, 1716580800000, 1716595200000, 1716609600000,
                1716624000000, 1716638400000, 1716652800000, 1716667200000, 1716681600000,
                1716696000000, 1716710400000, 1716724800000, 1716739200000, 1716753600000,
                1716768000000, 1716782400000, 1716796800000, 1716811200000, 1716825600000,
                1716840000000, 1716854400000, 1716868800000, 1716883200000, 1716897600000,
                1716912000000, 1716926400000, 1716940800000, 1716955200000, 1716969600000,
                1716984000000, 1716998400000, 1717012800000, 1717027200000, 1717041600000,
                1717056000000, 1717070400000, 1717084800000, 1717099200000, 1717113600000,
                1717128000000, 1717142400000, 1717156800000, 1717171200000, 1717185600000,
                1717200000000, 1717214400000, 1717228800000, 1717243200000, 1717257600000,
                1717272000000, 1717286400000, 1717300800000, 1717315200000, 1717329600000,
            ).map { it.toBigDecimal() }
            val notcoinPrice = listOf(
                "0.02026708", "0.02033274", "0.02112643", "0.02090579",
                "0.02047231", "0.0215645", "0.0089055", "0.00674459",
                "0.00733586", "0.00758165", "0.0068592", "0.00680505",
                "0.00685493", "0.00702113", "0.00725545", "0.00696515",
                "0.00681556", "0.00677416", "0.00669383", "0.00659057",
                "0.00668081", "0.0066211", "0.0065232", "0.00612542",
                "0.00600531", "0.00570974", "0.00559875", "0.00555247",
                "0.005495", "0.00547841", "0.00545514", "0.00553865",
                "0.00563302", "0.00568475", "0.00562512", "0.00551265",
                "0.005398", "0.00560001", "0.00572701", "0.00563223",
                "0.00555209", "0.00549261", "0.00524999", "0.00531381",
                "0.00539702", "0.00530647", "0.00533963", "0.00527143",
                "0.00525981", "0.00495323", "0.00481584", "0.0048854",
                "0.00480298", "0.00471316", "0.00473191", "0.00476389",
                "0.00476992", "0.00484649", "0.00471095", "0.00501396",
                "0.00495481", "0.00545029", "0.0053947", "0.00533251",
                "0.00518064", "0.00504481", "0.00507209", "0.00516952",
                "0.00524886", "0.00542661", "0.00544231", "0.00579898",
                "0.00681472", "0.00720634", "0.00824023", "0.00856427",
                "0.00821144", "0.00818103", "0.00960254", "0.00911172",
                "0.00888481", "0.00925911", "0.0091132", "0.009285",
                "0.00886256", "0.00938211", "0.00936566", "0.0104387",
                "0.01088452", "0.01200575", "0.01217514", "0.011921",
                "0.01293908", "0.0126124", "0.01224851", "0.01191149",
                "0.01179783", "0.01164533", "0.01175718", "0.01169137",
                "0.01212768", "0.01215952", "0.01300256", "0.01589522",
                "0.01588223", "0.01780629", "0.01919794", "0.01922187",
                "0.02165268", "0.02400163", "0.02290975", "0.02383495",
                "0.02088105", "0.02373489", "0.02269442", "0.02226249",
                "0.02148038", "0.0232045", "0.02623129", "0.02378975",
                "0.02438442", "0.02417507", "0.02269891", "0.02236198",
                "0.02209164", "0.02169842", "0.02137774", "0.02188837",
                "0.0216619", "0.02238334", "0.02186701", "0.02186521",
                "0.0217595", "0.02099916", "0.02129634", "0.02143028",
                "0.02192513", "0.02172005", "0.02184525", "0.01873974",
                "0.01899164", "0.01957115", "0.0204723", "0.0199247",
                "0.01935441", "0.01886976", "0.01856944", "0.0179975",
                "0.0178625", "0.01796981",
            ).map { BigDecimal(it) }
            val notcoinTimestamps = listOf<Long>(
                1715428800000, 1715443200000, 1715457600000, 1715472000000,
                1715486400000, 1715860800000, 1715875200000, 1715889600000,
                1715904000000, 1715918400000, 1715932800000, 1715947200000,
                1715961600000, 1715976000000, 1715990400000, 1716004800000,
                1716019200000, 1716033600000, 1716048000000, 1716062400000,
                1716076800000, 1716091200000, 1716105600000, 1716120000000,
                1716134400000, 1716148800000, 1716163200000, 1716177600000,
                1716192000000, 1716206400000, 1716220800000, 1716235200000,
                1716249600000, 1716264000000, 1716278400000, 1716292800000,
                1716307200000, 1716321600000, 1716336000000, 1716350400000,
                1716364800000, 1716379200000, 1716393600000, 1716408000000,
                1716422400000, 1716436800000, 1716451200000, 1716465600000,
                1716480000000, 1716494400000, 1716508800000, 1716523200000,
                1716537600000, 1716552000000, 1716566400000, 1716580800000,
                1716595200000, 1716609600000, 1716624000000, 1716638400000,
                1716652800000, 1716667200000, 1716681600000, 1716696000000,
                1716710400000, 1716724800000, 1716739200000, 1716753600000,
                1716768000000, 1716782400000, 1716796800000, 1716811200000,
                1716825600000, 1716840000000, 1716854400000, 1716868800000,
                1716883200000, 1716897600000, 1716912000000, 1716926400000,
                1716940800000, 1716955200000, 1716969600000, 1716984000000,
                1716998400000, 1717012800000, 1717027200000, 1717041600000,
                1717056000000, 1717070400000, 1717084800000, 1717099200000,
                1717113600000, 1717128000000, 1717142400000, 1717156800000,
                1717171200000, 1717185600000, 1717200000000, 1717214400000,
                1717228800000, 1717243200000, 1717257600000, 1717272000000,
                1717286400000, 1717300800000, 1717315200000, 1717329600000,
                1717344000000, 1717358400000, 1717372800000, 1717387200000,
                1717401600000, 1717416000000, 1717430400000, 1717444800000,
                1717459200000, 1717473600000, 1717488000000, 1717502400000,
                1717516800000, 1717531200000, 1717545600000, 1717560000000,
                1717574400000, 1717588800000, 1717603200000, 1717617600000,
                1717632000000, 1717646400000, 1717660800000, 1717675200000,
                1717689600000, 1717704000000, 1717718400000, 1717732800000,
                1717747200000, 1717761600000, 1717776000000, 1717790400000,
                1717804800000, 1717819200000, 1717833600000, 1717848000000,
                1717862400000, 1717876800000, 1717891200000, 1717905600000,
                1717920000000, 1717934400000,
            ).map { it.toBigDecimal() }

            return sequenceOf(bitcoinTimestamps to bitcoinPrice, notcoinTimestamps to notcoinPrice)
        }
}
